080f8695218632c0200d1996de33e9ba1a2b7468,changematrix/src/main/java/it/geosolutions/jaiext/changematrix/ChangeMatrixOpImage.java,ChangeMatrixOpImage,shortLoop,#number#number#number#number#number#number#number#number[]#number[][]#number#number#number[]#number[][]#number#number#number[]#number[][]#,454

Before Change


                    
                    if(before > pixelMultiplier || after > pixelMultiplier){
                        throw new IllegalArgumentException("PixelMultiplier should be bigger than the maximum class");
                    }else if(processing > Short.MAX_VALUE){
                        throw new RuntimeException("The processing result is bigger than the maximum allowed value");
                    }
                    
                    d[dstPixelOffset] = (short) (processing);

                    final int x = src1MinX + (src1PixelOffset % src1LineStride) / src1PixelStride;
                    final int y = src1MinY + (src1PixelOffset / src1LineStride);
                    if (roi == null || roi.contains(x, y)) {
                        result.registerPair(s1[src1PixelOffset], s2[src2PixelOffset]);

                    } else {
                        // we of course use 0 as NoData

After Change


                    final int x = src1MinX + (src1PixelOffset % src1LineStride) / src1PixelStride;
                    final int y = src1MinY + (src1PixelOffset / src1LineStride);
                    if (roi == null || roi.contains(x, y)) {
                        result.registerPair(s1[src1PixelOffset], s2[src2PixelOffset]);
                        // If the pixel is inside the ROI, it is processed following the operation: REFERENCE_CLASS + PIXEL_MUL*SOURCE_CLASS
                        int processing = before + pixelMultiplier * after;
                        // Check if the processing is an allowed value
                        if (processing > Short.MAX_VALUE || processing < Short.MIN_VALUE) {
                            throw new RuntimeException(
                                    "The processing result is not an allowed value for the final data type");
                        }